/**
 * Copyright (C) 2025 pony working team
 * SPDX-License-Identifier: MulanPSL-2.0
 */

/* define to prevent recursive inclusion -------------------------------------*/
#ifndef __PONY_HAL_SYSTEM_H__
#define __PONY_HAL_SYSTEM_H__

/* includes (standard library, system) ---------------------------------------*/
#include <stdarg.h>
/* includes (other library) --------------------------------------------------*/
/* includes (project) --------------------------------------------------------*/
/* includes (local) ----------------------------------------------------------*/

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

/* defines -------------------------------------------------------------------*/
/* typedefs ------------------------------------------------------------------*/

enum hal_sys_cmd {
    /* ioctl(cmd) */
    HAL_SYS_CMD_REBOOT,   /* reboot system */
    HAL_SYS_CMD_SHUTDOWN, /* shutdown system */
    /* ioctl(cmd, size_t addr)*/
    HAL_SYS_CMD_LOAD, /* load application */
    /* expand */
    HAL_SYS_CMD_CUSTOM,
};

/* macro ---------------------------------------------------------------------*/
/* inlines -------------------------------------------------------------------*/
/* externs -------------------------------------------------------------------*/

extern int hal_sys_ioctl(int cmd, ...);

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* __PONY_HAL_SYSTEM_H__ */
